<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//7. ~10、10 << 1、10 >> 2 分别等于多少？写出计算思路。
			console.log(~10); //-11
			/*
			10 / 2 = 5 -----0
			5 / 2 = 2  -----1
			2 / 2 = 1  -----0
			1 / 2 = 0  -----1
			
					0000 0000 0000 0000 0000 0000 0000 1010
			取反：	1111 1111 1111 1111 1111 1111 1111 0101
			再取反： 0000 0000 0000 0000 0000 0000 0000 1010
			1010 = 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 10;
			11 / 2 = 5 ------1
			5 / 2 = 2  ------1
			2 / 2 = 1  ------0
			1 / 2 = 0  ------1
			加上1：  0000 0000 0000 0000 0000 0000 0000 1011
			最终结果：-11
			*/
		   
		   console.log(10 << 1);//20
		   /*
		   10的二进制：0000 0000 0000 0000 0000 0000 0000 1010
		   左移1位：   0000 0000 0000 0000 0000 0000 0001 0100
		   转十进制：10100 = 1 * 2^4 + 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2^0 = 20
		   */
		  
		  console.log(10 >> 2);//2
		  /*
		  10的二进制：0000 0000 0000 0000 0000 0000 0000 1010
		  右移2位：   0000 0000 0000 0000 0000 0000 0000 0010
		  转十进制：0010 = 0 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 2
		  */
		</script>
	</body>
</html>
